#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a),i##END=(b);i<=i##END;i++)
#define Rof(i,b,a) for(int i=(b),i##END=(a);i>=i##END;i--)
#define go(u) for(int i=head[u];i;i=nxt[i])
#define int long long
using namespace std;
inline int read(){
    int x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
    return x*f;
}
const int N=2e5+10,inf=1e18;
int n,a[N],q;
int f[N],g[N],s[N];
signed main(){
	freopen("pockets.in","r",stdin);
	freopen("pockets.out","w",stdout);
	n=read();For(i,1,n-1)s[i]=s[i-1]+(a[i]=read());
	q=read();
	while(q--){
		s[n]=s[n-1]+(a[n]=read());
		if(a[n]>s[n-1]){
			printf("%lld\n",a[1]+a[n]-(s[n-1]-s[1]));
			continue;
		}
		For(i,1,n)f[i]=0,g[i]=inf;
		f[n]=g[n]=0;
		int MX=a[n],MN=s[n-1];
		Rof(i,n-1,1){
			f[i]=MX,g[i]=MN-s[i];
			MX=max(MX,g[i]+a[i]);
			MN=min(MN,f[i]+s[i-1]);
		}
		printf("%lld\n",a[1]-a[2]+2*f[2]-(s[n]-s[2]));
	}
	return 0;
}
